﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq;
using System.Data.Linq.Mapping;

namespace VemTransporte.Models.Basica
{
    [Table(Name="Empresa")]
    public class Empresa
    {
        #region Atributos
        private int id = 0;
        private string logoTipo;
        private string nomeFantasia;
        private string nomeRazaoSocial;
        private string cnpj;
        private string inscricaoEstadual;
        private EntitySet<EmpresaTelefone> _EmpresaTelefones;
        private string email;
        private string senha;
        private string lembreteSenha;
        private Nullable<int> _IdEndereco;
        private EntityRef<Endereco> _Endereco;
        #endregion

        #region Propriedades
        [Column(Name="PK_IdEmpresa", IsDbGenerated=true, Storage="id", IsPrimaryKey=true, AutoSync=AutoSync.OnInsert)]
        public int Id
        {
          get { return id; }
        }

        [Column(Name = "FK_IdEndereco", CanBeNull = true)]
        public Nullable<int> IdEndereco
        {
            get { return _IdEndereco; }
            set { _IdEndereco = value; }
        }

        [Association(ThisKey = "IdEndereco", OtherKey="Id", Storage = "_Endereco", IsForeignKey = true)]
        public Endereco Endereco
        {
            get { return this._Endereco.Entity; }
            set { this._Endereco.Entity = value; }
        }

        [Column(Name="EMP_LogoTipo")]
        public string LogoTipo
        {
          get { return logoTipo; }
          set { logoTipo = value; }
        }

        [Column(Name = "EMP_NomeFantasia")]
        public string NomeFantasia
        {
            get { return nomeFantasia; }
            set { nomeFantasia = value; }
        }

        [Column(Name = "EMP_NomeRazaoSocial")]
        public string NomeRazaoSocial
        {
            get { return nomeRazaoSocial; }
            set { nomeRazaoSocial = value; }
        }

        [Column(Name = "EMP_Cnpj")]
        public string Cnpj
        {
            get { return cnpj; }
            set { cnpj = value; }
        }

        [Column(Name = "EMP_InscricaoEstadual")]
        public string InscricaoEstadual
        {
            get { return inscricaoEstadual; }
            set { inscricaoEstadual = value; }
        }

        [Column(Name="EMP_EMail")]
        public string Email
        {
          get { return email; }
          set { email = value; }
        }

        [Column(Name = "EMP_Senha")]
        public string Senha
        {
            get { return senha; }
            set { senha = value; }
        }

        [Column(Name = "EMP_LembreteSenha")]
        public string LembreteSenha
        {
            get { return lembreteSenha; }
            set { lembreteSenha = value; }
        }

        [Association(Storage = "_EmpresaTelefones", OtherKey = "IdEmpresa")]
        public EntitySet<EmpresaTelefone> EmpresaTelefones
        {
            get { return this._EmpresaTelefones; }
            set 
            { 
                this._EmpresaTelefones.Assign(value); 
            }
        }
        #endregion

        #region Constructores
        public Empresa() 
        { 
            this._EmpresaTelefones = new EntitySet<EmpresaTelefone>();
            this._Endereco = new EntityRef<Endereco>();
        }

        #endregion

    }
}